<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // string
        // number
        // null
        // undefined
        // boolean

        // symbol



        // object
        // function
        // Array 

        // ES6新增数据类型

        // symbol - 代表了一个独一无二的值。
        // id 不允许重复
        // 
        // let s1 = Symbol();
        // console.log(s1);


        // 8千个属性
        // let obj = {
        //     name:"老王",
        //     age:19,
        //     sex:"男"
        //     // ...
        // }

        // 给obj设置一个新的属性 - 把新的值存进去。
        // obj.name = '小李';
        // console.log(obj.name2);

        // 普通标识 - 没有指向性- 说明文字。
        // let s1 = Symbol('s1');
        // let s2 = Symbol('s2');
        // // 有指向的标识，通过标识可以获得制定的symbol值。
        // let s3 = Symbol.for('哈哈哈');
        // obj[s1] = '啦啦啦';
        // obj[s2] = '噜噜噜';
        // obj[s3] = '哈哈哈';
        // console.log(obj);
        // console.log(obj[s2]);


        // 别人的 代码 - 得到lalala
        // console.log(obj[Symbol()]);
        // console.log(obj[Symbol.for('哈哈哈')]);
        // console.log(obj[Symbol('s1')]);


        // let s4 = Symbol.for('a');
        // let s5 = Symbol.for('a');
        // let s6 = Symbol('存数字的变量')
        // let s7 = Symbol('存字符串的变量')

        // console.log(s6);
        // console.log(s7);
        // console.log(s6===s7);

        // console.log(s4===s5);


        // console.log(typeof s4);

        // 无法转成数字
        // console.log(Number(s4));

        let s2 = Symbol('s2');

        let obj = {
            [s2]:'老王',
            [Symbol.for('ok')]:'啦啦啦',
            name:"小李",
            age:18
        }

        // console.log(obj);

        // // console.log(obj.Symbol);
        // console.log(obj[s2]);

        // console.log(obj[Symbol.for('ok')]);


        // for(let item in obj){
        //     console.log(item);
        // }


        // Object.getOwnPropertySymbols - 获取所有的对象下的symbol属性
        // Object.keys = 等价
        let arr = Object.getOwnPropertySymbols(obj);

        // console.log(arr);

        for(let i = 0; i<arr.length;i++){
            console.log(arr[i]);
            console.log(obj[arr[i]]);
        }






    </script>
</body>
</html>